public class Solution {
    public int majorityElement(int[] nums) {
        int candidate = -1;  // 初始化候选元素
        int count = 0;       // 初始化计数器

        // 第一遍遍历，找到候选多数元素
        for (int num : nums) {
            if (count == 0) {
                candidate = num;  // 更新候选元素
            }
            count += (num == candidate) ? 1 : -1;  // 计数器更新
        }

        // 返回候选元素，它就是多数元素
        return candidate;
    }

    public static void main(String[] args) {
        Solution solution = new Solution();

        // 示例1
        int[] nums1 = {3, 2, 3};
        System.out.println(solution.majorityElement(nums1));  // 输出: 3

        // 示例2
        int[] nums2 = {2, 2, 1, 1, 1, 2, 2};
        System.out.println(solution.majorityElement(nums2));  // 输出: 2
    }
}
